#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/mman.h>

int main(void)
{
	pid_t pid;
	void *ptr;
	
	// 共享内存
	ptr = mmap(NULL, 1024, PROT_READ| PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);

	pid = fork();
	if (-1 == pid) {
		perror("fork()");
		exit(1);
	}
	if (0 == pid) {
		// 将共享内存映射到虚拟地址空间
		memcpy(ptr, "good morning", 13);
		munmap(ptr, 1024);
		exit(0);
	}

	wait(NULL);
	puts(ptr);
	munmap(ptr, 1024);

	exit(0);
}

